package database;

import java.io.FileInputStream;
import java.io.IOException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

/**
 * @UNUSED CETTE CLASSE N'EST PAS ENCORE UTILISÉE
 * 
 * Le but de cette classe est de créer une signature numérique 
 * pour un document en fonction de son contenu.
 * 
 * @author jordan
 */
public class Sha1Encryption
{
  /**
   * Créé une signature numérique pour un document
   * 
   * @param filePath le chemin d'accès au document
   * @return la signature SHA-1
   */
  public static String computeSha1(String filePath)
  {
    MessageDigest md = null;
    byte[] mdbytes = null;
    try
    {
      md = MessageDigest.getInstance("SHA1");
      FileInputStream fis = new FileInputStream(filePath);
      byte[] dataBytes = new byte[1024];

      int nread = 0;

      while ((nread = fis.read(dataBytes)) != -1)
      {
        md.update(dataBytes, 0, nread);
      };

      mdbytes = md.digest();
      
      fis.close();
    }
    catch (NoSuchAlgorithmException | IOException e)
    {
      e.printStackTrace();
    }

    StringBuffer sb = new StringBuffer("");
    if(mdbytes != null)
    {
      for (int i = 0; i < mdbytes.length; i++)
      {
        sb.append(Integer.toString((mdbytes[i] & 0xff) + 0x100, 16).substring(1));
      }
    }
    
    return sb.toString();
  }
}
